/*
 * NodoBSharp.h
 *
 *  Created on: 26/09/2010
 *      Author: jijodra
 */

#ifndef NODOBSHARP_H_
#define NODOBSHARP_H_

#include <iostream>
#include <vector>
#include "Puntero.h"
#include "RegistroBSharp.h"
#include "../moduloAlmacenamiento/ManejadorAccesoDatos.h"

using namespace std;

class NodoBSharp {

public:
	static const short NODO_RAIZ;
	static const short NODO_HOJA;
	static const short NODO_INDICE;

	short tipo;
	long cantClavesUsadas;
	long cantRegistrosUsados;
	long numNodo;
	long numBloque;
	Puntero siguiente;
	Puntero anterior;
	vector<long> claves;
	vector<Puntero> punteros;
	vector<RegistroBSharp> registros;

	NodoBSharp();
	NodoBSharp(short tipo);
	long CalcularTamanio(NodoBSharp nodo);
	long CalcularTamanio(vector<NodoBSharp> nodos);
	void Salvar(char* fileName);
	void Obtener(char* fileName, Puntero puntero);
	void Limpiar();
	virtual ~NodoBSharp();
};

#endif /* NODOBSHARP_H_ */


